package com.wondertek.poms.service.vo;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.groups.Default;

import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;
import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.wondertek.poms.common.utils.validate.GroupType;

import lombok.Data;

/**
 * <p><b>ContentBlackVo Description:</b> ContentBlackVo类  对应 CONTENT_BLACK-黑名单表 表</p>
 * @author 窦再兴
 * <p><b>DATE</b> 2020-12-03 10:19:26</p>
 */
 @Data
 @Accessors(chain = true)
public class ContentBlackVo {
	
	/**
	 * <b>Fields</b> id : 主键ID
	 */
	@NotNull(message = "id不能为空", groups = {GroupType.Update.class})
	@NotNull(message = "主键ID不能为空", groups = {Default.class})
	private Long id;
	
	/**
	 * <b>Fields</b> contentId : 内容id
	 */
	@NotBlank(message = "内容id不能为空", groups = {Default.class})
	@Length(message = "内容id长度不能超过255个字节", max=255, groups = {Default.class, GroupType.Update.class})
	private String contentId;
	
	/**
	 * <b>Fields</b> packageId : 二级产品id
	 */
	@NotNull(message = "二级产品id不能为空", groups = {Default.class})
	private Long packageId;
	
	/**
	 * <b>Fields</b> prdInfoId : 商品包id
	 */
	@NotNull(message = "商品包id不能为空", groups = {Default.class})
	private Long prdInfoId;
	
	/**
	 * <b>Fields</b> remarks : 备注
	 */
	@NotBlank(message = "备注不能为空", groups = {Default.class})
	@Length(message = "备注长度不能超过512个字节", max=512, groups = {Default.class, GroupType.Update.class})
	private String remarks;
	
	/**
	 * <b>Fields</b> createdBy : 创建人
	 */
	@NotBlank(message = "创建人不能为空", groups = {Default.class})
	@Length(message = "创建人长度不能超过64个字节", max=64, groups = {Default.class, GroupType.Update.class})
	private String createdBy;
	
	/**
	 * <b>Fields</b> createdTime : 创建时间
	 */
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private java.time.LocalDateTime createdTime;
	
	/**
	 * <b>Fields</b> updatedBy : 更新人
	 */
	@NotBlank(message = "更新人不能为空", groups = {Default.class})
	@Length(message = "更新人长度不能超过64个字节", max=64, groups = {Default.class, GroupType.Update.class})
	private String updatedBy;
	
	/**
	 * <b>Fields</b> updatedTime : 更新时间
	 */
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private java.time.LocalDateTime updatedTime;
	
	/**
	 * <b>Fields</b> deleted : 是否有效 0正常 1删除 2停用
	 */
	@Range(message = "是否有效 0正常 1删除 2停用的范围是[0-9]", min=0, max=9, groups = {Default.class})
	private Integer deleted;
}